//package work.rightAnswer;
//
//
//class nextPermutation_31 {
//    public void nextPermutation(int[] nums) {
//
//        //left 表示 小值的下标 -1表示不存在
//        int left = nums.length-2;
//        //right 表示右值的坐标
//        int right = nums.length-1;
//        //1.找到升序位置的【小值】
//        while (left>=0){
//            if(nums[left]<nums[left+1]){
//                break;
//            }
//            left--;
//        }
//        //2.找到【大值】
//        if (left!=-1) {
//            while (right>left){
//                if(nums[right]>nums[left]){
//                    break;
//                }
//                right--;
//            }
//
//            int tmp = nums[left];
//            nums[left] = nums[right];
//            nums[right] = tmp;
//        }
//
//        reverse(nums,left+1,nums.length-1);
//
//
//    }
//
//    private void reverse(int[] nums, int left, int right) {
//        while (left<=right){
//            int tmp = nums[left];
//            nums[left++] = nums[right];
//            nums[right--] = tmp;
//        }
//    }
//}